iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
1
自我挑戰組

一日一CPE系列 第 10

[Day10]612: DNA Sorting

  • 分享至 

  • xImage
  •  

考題日期:2013/10/01
題號:612
星等:2
語言:C++


題目:

https://ithelp.ithome.com.tw/upload/images/20190926/2012093752pa7a4CA2.png

題意:
給予一些長度相同的字串,並依照其「未排序」程度排序並輸出。「未排序」的程度是以各字元間彼此的大小關係來計算的。例如在字串 DAABEC中,「未排序」的程度為 5,因為D比它右邊的4個字元大,E比它右邊的1個字元大。而字串AACEDGG「未排序」的程度為 1,以此類推。


程式:

#include <iostream>
#include<algorithm>
using namespace std;

struct data{
    char letter[50];
    int num = 0;
};
bool cmp(data x,data y)
{
    return x.num < y.num;
}
int main()
{
    int test,n,m;
    cin>>test;
    for(int i = 0 ; i < test ; i++)
    {
        if(i>0)
            cout<<endl;
        cin>>n>>m;
        struct data g[m];
        data *c = g;
        for(int j = 0 ; j < m ; j++)
        {
           for(int k = 0 ; k < n ; k++)
            {
                cin>>c[j].letter[k];
            }
        }
        for(int j = 0 ; j < m ; j++)
        {
           for(int k = 0 ; k < n-1 ; k++)
            {
                for(int l = k ; l < n ; l++)
                {
                    if(int(c[j].letter[k]) > int(c[j].letter[l]))
                        c[j].num++;
                }
            }
        }
        sort(g,g+m,cmp);
        for(int j = 0 ; j < m ; j++)
        {
            if(j>0)
                cout<<endl;
            for(int k = 0 ; k < n ; k++)
            {
                cout<<c[j].letter[k];
            }

        }

    }
    return 0;
}


測資:
https://ithelp.ithome.com.tw/upload/images/20190926/20120937imohy46ZvM.png


上一篇
[Day9]11942: Lumberjack Sequencing
下一篇
[Day11]11040: Add bricks in the wall
系列文
一日一CPE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言